using System;
using System.Data.SqlClient;
using System.Data;
using System.Collections.Generic;
using System.Text;
using Aplicacao.Objetos;
using System.Windows.Forms;

namespace Model
{
    public class Pessoa
    {
        public Pessoa(){}

        public int Salvar(Aplicacao.Objetos.Pessoa oPessoa)
        {
            String strQueryInsert = "insert into Pessoas (nomPessoa,codCepRes,descComplEnderecoRes,codCepComl,";
            strQueryInsert += "descComplEnderecoComl,descTelResidencial,descTelComl,descTelCelular,descEmail1,";
            strQueryInsert += "descEmail2,descApelido,descSexo,descIdade,descAniversario,descTituloEleitor,";
            strQueryInsert += "descZona,descProfissao,descSecao,codCepRes2,codCepComl2,flagEnviar,descPartido, ";
            strQueryInsert += " descComplComl2,descComplRes2,descEmailComl2,descEmailRes2,descObs,codPJ,descCargo,descOrigem) values (";

            strQueryInsert += "'" + oPessoa.nome + "',";
            strQueryInsert += "'" + oPessoa.cepRes + "',";
            strQueryInsert += "'" + oPessoa.complEndRes + "',";
            strQueryInsert += "'" + oPessoa.cepComl + "',";
            strQueryInsert += "'" + oPessoa.compEndComl + "',";
            strQueryInsert += "'" + oPessoa.telresid + "',";
            strQueryInsert += "'" + oPessoa.telcoml + "',";
            strQueryInsert += "'" + oPessoa.telcel + "',";
            strQueryInsert += "'" + oPessoa.emailresid + "',";
            strQueryInsert += "'" + oPessoa.emailcoml + "',";
            strQueryInsert += "'" + oPessoa.apelido + "',";
            strQueryInsert += "'" + oPessoa.sexo + "',";
            strQueryInsert += "'" + oPessoa.idade + "',";
            strQueryInsert += "'" + oPessoa.aniversario + "',";
            strQueryInsert += "'" + oPessoa.tituloeleitor + "',";
            strQueryInsert += "'" + oPessoa.zona + "',";
            strQueryInsert += "'" + oPessoa.profissao + "',";
            strQueryInsert += "'" + oPessoa.secao + "',";
            strQueryInsert += "'" + oPessoa.cepRes2 + "',";
            strQueryInsert += "'" + oPessoa.cepComl2 + "',";
            strQueryInsert += "1,";
            strQueryInsert += "'" + oPessoa.partido + "',";
            strQueryInsert += "'" + oPessoa.compEndComl2 + "',";
            strQueryInsert += "'" + oPessoa.complEndRes2 + "',";
            strQueryInsert += "'" + oPessoa.emailcoml2 + "',";
            strQueryInsert += "'" + oPessoa.emailresid2 + "',";
            strQueryInsert += "'" + oPessoa.Observacoes + "',";
            strQueryInsert += "" + oPessoa.codPj + ",";
            strQueryInsert += "'" + oPessoa.Cargo + "',";
            strQueryInsert += "'" + oPessoa.Origem + "'";
            strQueryInsert += ");select @@identity;";

            return Int32.Parse( SqlHelper.ExecuteDataTable(strQueryInsert).Rows[0][0].ToString() );
        }

        public int Atualizar(Aplicacao.Objetos.Pessoa oPessoa)
        {
            String strQueryInsert = "update Pessoas set";

            strQueryInsert += " nomPessoa = '" + oPessoa.nome + "',";
            strQueryInsert += " codCepRes = '" + oPessoa.cepRes + "',";
            strQueryInsert += " codCepRes2 = '" + oPessoa.cepRes2 + "',";
            strQueryInsert += " descComplEnderecoRes = '" + oPessoa.complEndRes + "',";
            strQueryInsert += " codCepComl = '" + oPessoa.cepComl + "',";
            strQueryInsert += " codCepComl2 = '" + oPessoa.cepComl2 + "',";
            strQueryInsert += " descComplEnderecoComl = '" + oPessoa.compEndComl + "',";
            strQueryInsert += " descTelResidencial = '" + oPessoa.telresid + "',";
            strQueryInsert += " descTelComl = '" + oPessoa.telcoml + "',";
            strQueryInsert += " descTelCelular = '" + oPessoa.telcel + "',";
            strQueryInsert += " descEmail1 = '" + oPessoa.emailresid + "',";
            strQueryInsert += " descEmail2 = '" + oPessoa.emailcoml + "',";
            strQueryInsert += " descApelido = '" + oPessoa.apelido + "',";
            strQueryInsert += " descSexo = '" + oPessoa.sexo + "',";
            strQueryInsert += " descIdade = '" + oPessoa.idade + "',";
            strQueryInsert += " descAniversario = '" + oPessoa.aniversario + "',";
            strQueryInsert += " descTituloEleitor = '" + oPessoa.tituloeleitor + "',";
            strQueryInsert += " descZona = '" + oPessoa.zona + "',";
            strQueryInsert += " descProfissao = '" + oPessoa.profissao + "',";
            strQueryInsert += " descSecao = '" + oPessoa.secao + "',";
            strQueryInsert += " descPartido = '" + oPessoa.partido + "',";

            strQueryInsert += " descComplComl2 = '" + oPessoa.compEndComl2 + "',";
            strQueryInsert += " descComplRes2 = '" + oPessoa.complEndRes2 + "',";
            strQueryInsert += " descEmailComl2 = '" + oPessoa.emailcoml2 + "',";
            strQueryInsert += " descEmailRes2 = '" + oPessoa.emailresid2 + "',";

            strQueryInsert += " descOrigem = '" + oPessoa.Origem + "',";
            strQueryInsert += " codPJ = '" + oPessoa.codPj + "',";
            strQueryInsert += " descObs = '" + oPessoa.Observacoes + "',";
            strQueryInsert += " descCargo = '" + oPessoa.Cargo + "',";



            strQueryInsert += " flagEnviar = 1 ";
            strQueryInsert += " where codPessoa  = " + oPessoa.codigo;

            return SqlHelper.ExecuteNonQuery(strQueryInsert);


        }

        public DataTable RetornaDataTableTodasPessoas()
        {
            Object[] Params = new Object[1];
            Params.SetValue(0,0);

            return SqlHelper.ExecuteDataTable("prRetornaDadosPessoa", Params);
        }

        public DataTable RetornaDataTablePorNome(String strNome)
        {
            Object[] Params = new Object[1];
            Params.SetValue(strNome, 0);
            return SqlHelper.ExecuteDataTable("prRetornaPessoaPorNome", Params);
        }

        public DataTable RetornaDataTablePorNomePJ(String strNome)
        {
            Object[] Params = new Object[1];
            Params.SetValue(strNome, 0);
            return SqlHelper.ExecuteDataTable("select * from PessoasPJ");
        }

        public DataTable RetornaDataTablePessoa(int codPessoa)
        {
            Object[] Params = new Object[1];
            Params.SetValue(codPessoa, 0);

            return SqlHelper.ExecuteDataTable("prRetornaDadosPessoa", Params);
        }

        public void Excluir(int codPessoa)
        {
            SqlHelper.ExecuteNonQuery("delete from pessoas where codPessoa = " + codPessoa);
        }

        public static void BindaComboPJ(ComboBox cbxBind)
        {
            String strQuery       = "select descRazaoSocial,codpj from PessoasPJ";
            DataTable dt = SqlHelper.ExecuteDataTable(strQuery);
            Object[] Params = new Object[2];
            Params.SetValue("",0);
            Params.SetValue(0,1);
            dt.Rows.Add(Params);
            cbxBind.DataSource = dt;
            cbxBind.DisplayMember = "descRazaoSocial";
            cbxBind.ValueMember   = "codpj";
            cbxBind.SelectedIndex = -1;
        }

        public int SalvaPJ(String descRazaoSocial, String descNomeFantasia, String descCNPJ, String descCep, String descCompl, String descSite, String descEmail, String descEmail2, String descObservacoes , int iCodPessoa)
        {
            Object[] Params = new Object[9];
            Params.SetValue(descRazaoSocial , 0);
            Params.SetValue(descNomeFantasia , 1);
            Params.SetValue(descCep, 2);
            Params.SetValue(descCompl, 3);
            Params.SetValue(descEmail, 4);
            Params.SetValue(descEmail2, 5);
            Params.SetValue(descSite, 6);
            Params.SetValue(descObservacoes, 7);
            Params.SetValue(descCNPJ, 8);

            int i = 0;
            if (iCodPessoa == 0)
            {
                i = Int32.Parse(SqlHelper.ExecuteDataTable("prPessoasPJ_INSERT", Params).Rows[0][0].ToString() );
            }
            else
            {
                Params.SetValue(iCodPessoa, 9);
                i =  SqlHelper.ExecuteNonQuery("prPessoasPJ_UPDATE", Params);
            }
            return i;
        }

        public static bool Autentica(string strLogin , string strSenha)
        {
            return Convert.ToBoolean ( SqlHelper.ExecuteDataTable("select codusuario from Usuario where descLogin = '" + strLogin + "' and descSenha = '" + strSenha + "'").Rows[0][0] ); 
        }
    }
}
